//
//  BaseRequestController.h
//  s.
//
//  Created by fanshijian on 2022/8/24.
//  Copyright © 2022 J. All rights reserved.
//

#import "BaseViewController.h"

NS_ASSUME_NONNULL_BEGIN

@interface HLControllerConfig : NSObject

/// 这里的url，是urls配置中的请求接口
@property (copy, nonatomic, nullable) NSString *conv_url;

/// 请求参数
@property (readonly, nonatomic) NSMutableDictionary *req_params;

/// 分页字段 默认page
@property (copy, nonatomic) NSString *pageKey;

/// 请求当前页码
@property (assign, nonatomic) NSInteger pageNum;

/// 请求个数 默认10
@property (assign, nonatomic) NSInteger pageSize;

/** 重置page  */
- (void)resetPage;
/** 下一页数据修改  */
- (void)nextPage;

@end


@interface BaseRequestController : BaseViewController

/// 设置之后自动调用startLoading
@property (strong, nonatomic) HLControllerConfig *cfg;

/// 是否请求时显示page 加载 loading，是否失败显示重试按钮， 子类重写默认YES
@property (readonly, nonatomic) BOOL can_show_page_loading;
/** 是否网络请求失败提示error信息, 子类重写默认YES  */
@property (readonly, nonatomic) BOOL can_show_req_error;
/// 通知集合
@property (readonly, nonatomic) NSSet *refresh_notice_names;

/// 数据请求校验完成处理方法，子类重写
/// @param operation 请求
/// @param data 返回数据
/// @param msg 校验信息，为空成功
/// @param more 是否是加载更多
- (void)finishRequestWithOperation:(AFHTTPRequestOperation *)operation data:(id)data vmsg:(NSString * __nullable)msg more:(BOOL)more;

/** 开始加载  */
- (void)startLoading;
/** 刷新  */
- (void)refreshRequest;
/** 加载更多  */
- (void)loadMore;
/** 即将刷新  */
- (BOOL)willRefresh;
/** 即将加载更多  */
- (void)willLoadMore;

@end

NS_ASSUME_NONNULL_END
